package com.brightgenerous.niconama02.project.madokamagica;

import com.brightgenerous.niconama02.actor.ActorOffice;
import com.brightgenerous.niconama02.stage.Stage;

/**
 * <p>
 * まどか☆マギカ(舞台)制作プロジェクト
 * </p>
 * 
 * @author brigen
 */
public class MadokamagicaStageProject {

	/*
	 * まどか☆マギカ(舞台)制作プロジェクトは唯一の存在
	 * Singletonで実装している
	 */
	/** まどか☆マギカ(舞台)制作プロジェクト */
	private static final MadokamagicaStageProject sInstance = new MadokamagicaStageProject();

	/**
	 * <p>
	 * [constructor]
	 * </p>
	 * <p>
	 * 外部からまどか☆マギカ(舞台)制作プロジェクトを作成することはできない
	 * </p>
	 */
	private MadokamagicaStageProject() {
	}

	/**
	 * まどか☆マギカ(舞台)制作プロジェクトを返す
	 *
	 * @return まどか☆マギカ制作プロジェクト
	 */
	public static MadokamagicaStageProject getProject() {
		return sInstance;
	}

	/*
	 * いわゆる、Factoryパターンというやつ
	 */
	/**
	 * <p>
	 * まどか☆マギカ(舞台)をプロデュースする
	 * </p>
	 * 
	 * @return まどか☆マギカ(舞台)
	 */
	public Stage produce() {
		MadokamagicaStage stage = new MadokamagicaStage();
		ActorOffice office = ActorOffice.getOffice();
		stage.setActor01(office.dispatchActor01());
		stage.setActor02(office.dispatchActor02());
		stage.setActor03(office.dispatchActor03());
		stage.setActor04(office.dispatchActor04());
		stage.setActor05(office.dispatchActor05());
		return stage;
	}
}
